namespace TangCaptureTraffic.Services
{
    /// <summary>
    /// 配置服务接口，定义配置管理的核心功能
    /// </summary>
    public interface IConfigurationService
    {
        /// <summary>
        /// 加载配置
        /// </summary>
        void LoadConfiguration();
        
        /// <summary>
        /// 保存配置
        /// </summary>
        void SaveConfiguration();
        
        /// <summary>
        /// 获取最大会话数量
        /// </summary>
        /// <returns>最大会话数量</returns>
        int GetMaxSessions();
        
        /// <summary>
        /// 获取会话清理数量
        /// </summary>
        /// <returns>会话清理数量</returns>
        int GetSessionCleanupCount();
        
        /// <summary>
        /// 获取UI最大会话数量
        /// </summary>
        /// <returns>UI最大会话数量</returns>
        int GetMaxUISessions();
        
        /// <summary>
        /// 获取UI会话清理数量
        /// </summary>
        /// <returns>UI会话清理数量</returns>
        int GetUISessionCleanupCount();
        
        /// <summary>
        /// 获取内存清理间隔
        /// </summary>
        /// <returns>内存清理间隔（毫秒）</returns>
        int GetMemoryCleanupInterval();
        
        /// <summary>
        /// 是否启用自动内存清理
        /// </summary>
        /// <returns>是否启用自动内存清理</returns>
        bool IsAutoMemoryCleanupEnabled();
        
        /// <summary>
        /// 获取内存警告阈值
        /// </summary>
        /// <returns>内存警告阈值（MB）</returns>
        int GetMemoryWarningThreshold();
        
        /// <summary>
        /// 更新内存配置
        /// </summary>
        /// <param name="config">内存配置数据</param>
        void UpdateMemoryConfiguration(MemoryConfigData config);
    }
}